/**
 * 登录服务实现类
 * 实现了loginService接口，提供具体的登录和注册服务
 */
package cn.edu.seig.springks.service.Impl;

import cn.edu.seig.springks.dao.loginMapper;
import cn.edu.seig.springks.pojo.user;
import cn.edu.seig.springks.service.loginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class loginServiceImpl implements loginService {
    // 自动注入loginMapper，用于执行登录和注册相关的数据库操作
    @Autowired
    loginMapper loginMapper;

    /**
     * 登录方法
     * 验证用户提供的账户和密码是否匹配
     *
     * @param user 用户对象，包含账户和密码信息
     * @return 返回一个用户对象，根据不同的情况返回不同的状态码
     *         -1：表示账户不存在
     *          0：表示密码错误
     *          正常情况返回用户信息
     */
    @Override
    public user login(user user) {
        // 检查账户是否存在
        if(loginMapper.getAccount(user.getAccount()) == null){
            // 返回状态码-1，表示账户不存在
            return new user(-1);
        }
        // 验证密码是否正确
        if(loginMapper.login(user).equals(user.getPassword())){
            // 密码正确，返回用户信息
            return loginMapper.getInfo(user.getAccount());
        }
        else{
            // 返回状态码0，表示密码错误
            return new user(0);
        }
    }

    /**
     * 注册方法
     * 将用户信息添加到数据库中
     *
     * @param user 用户对象，包含账户和密码等信息
     * @return 返回整数表示注册结果
     *         -1：表示账户已存在，注册失败
     *          其他值：表示注册成功，返回值为数据库操作结果
     */
    @Override
    public int register(user user) {
        // 检查账户是否已存在
        if(loginMapper.getAccount(user.getAccount()) != null){
            // 账户已存在，返回-1表示注册失败
            return -1;
        }
        // 账户不存在，执行注册操作
        return loginMapper.register(user);
    }
}
